<!DOCTYPE html>
<html class="writer-html5" lang="zh" >
<head>
  <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>首页 &mdash; EasyVulkan</title>
      <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
      <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
      <link rel="stylesheet" href="_static/theme.css" type="text/css" />
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
        <script src="_static/jquery.js"></script>
        <script src="_static/underscore.js"></script>
        <script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
        <script src="_static/doctools.js"></script>
    <script src="_static/js/theme.js"></script>
    <link rel="index" title="索引" href="genindex.html" />
    <link rel="search" title="搜索" href="search.html" />
    <link rel="next" title="Ch1-0 准备工作" href="Ch1-0%20%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
            <a href="#" class="icon icon-home"> EasyVulkan
            <img src="_static/logo1.png" class="logo" alt="Logo"/>
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="在文档中搜索" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <p class="caption" role="heading"><span class="caption-text">第一章 初始化</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch1-0%20%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C.html">Ch1-0 准备工作</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-1%20%E5%88%9B%E5%BB%BAGLFW%E7%AA%97%E5%8F%A3.html">Ch1-1 创建GLFW窗口</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-2%20%E5%88%9D%E5%A7%8B%E5%8C%96%E6%B5%81%E7%A8%8B.html">Ch1-2 初始化流程</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-3%20%E5%88%9B%E5%BB%BAVK%E5%AE%9E%E4%BE%8B%E4%B8%8E%E9%80%BB%E8%BE%91%E8%AE%BE%E5%A4%87.html">Ch1-3 创建VK实例与逻辑设备</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-4%20%E5%88%9B%E5%BB%BA%E4%BA%A4%E6%8D%A2%E9%93%BE.html">Ch1-4 创建交换链</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">第二章 绘制一个三角形</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch2-0%20%E4%BB%A3%E7%A0%81%E6%95%B4%E7%90%86%E5%8F%8A%E4%B8%80%E4%BA%9B%E8%BE%85%E5%8A%A9%E7%B1%BB.html">Ch2-0 代码整理及一些辅助类</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-1%20Rendering%20Loop.html">Ch2-1 Rendering Loop</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-2%20%E5%88%9B%E5%BB%BA%E6%B8%B2%E6%9F%93%E9%80%9A%E9%81%93%E5%92%8C%E5%B8%A7%E7%BC%93%E5%86%B2.html">Ch2-2 创建渲染通道和帧缓冲</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-3%20%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%BA%BF%E5%B9%B6%E7%BB%98%E5%88%B6%E4%B8%89%E8%A7%92%E5%BD%A2.html">Ch2-3 创建管线并绘制三角形</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">第三章 纵观Vulkan</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch3-1%20%E5%90%8C%E6%AD%A5%E5%8E%9F%E8%AF%AD.html">Ch3-1 同步原语</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-2%20%E5%9B%BE%E5%83%8F%E4%B8%8E%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch3-2 图像与缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-3%20%E7%AE%A1%E7%BA%BF%E5%B8%83%E5%B1%80%E5%92%8C%E7%AE%A1%E7%BA%BF.html">Ch3-3 管线布局和管线</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-4%20%E6%B8%B2%E6%9F%93%E9%80%9A%E9%81%93%E5%92%8C%E5%B8%A7%E7%BC%93%E5%86%B2.html">Ch3-4 渲染通道和帧缓冲</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-5%20%E5%91%BD%E4%BB%A4%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch3-5 命令缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-6%20%E6%8F%8F%E8%BF%B0%E7%AC%A6.html">Ch3-6 描述符</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-7%20%E9%87%87%E6%A0%B7%E5%99%A8.html">Ch3-7 采样器</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">第四章 着色器</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch4-1%20%E7%9D%80%E8%89%B2%E5%99%A8%E6%A8%A1%E7%BB%84.html">Ch4-1 着色器模组</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch4-2%20%E9%A1%B6%E7%82%B9%E7%9D%80%E8%89%B2%E5%99%A8.html">Ch4-2 顶点着色器</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch4-3%20%E7%89%87%E6%AE%B5%E7%9D%80%E8%89%B2%E5%99%A8.html">Ch4-3 片段着色器</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">第五章 封装常用对象</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch5-0%20VkBase%2B.h.html">Ch5-0 VkBase+.h</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch5-1%20%E5%90%84%E7%A7%8D%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch5-1 各种缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch5-2%202D%E8%B4%B4%E5%9B%BE%E5%8F%8A%E7%94%9F%E6%88%90Mipmap.html">Ch5-2 2D贴图及生成Mipmap</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">第七章 基础示例</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch7-1%20%E5%88%9D%E8%AF%86%E9%A1%B6%E7%82%B9%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-1 初识顶点缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-2%20%E5%88%9D%E8%AF%86%E7%B4%A2%E5%BC%95%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-2 初识索引缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-3%20%E5%88%9D%E8%AF%86Push%20Constant.html">Ch7-3 初识Push Constant</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-4%20%E5%88%9D%E8%AF%86Uniform%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-4 初识Uniform缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-5%20%E6%8B%B7%E8%B4%9D%E5%9B%BE%E5%83%8F%E5%88%B0%E5%B1%8F%E5%B9%95.html">Ch7-5 拷贝图像到屏幕</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-6%20%E4%BD%BF%E7%94%A8%E8%B4%B4%E5%9B%BE.html">Ch7-6 使用贴图</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="#">EasyVulkan</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="#" class="icon icon-home"></a> &raquo;</li>
      <li>首页</li>
      <li class="wy-breadcrumbs-aside">
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="id1">
<h1>首页<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h1>
<section id="id2">
<h2>简介<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<p>
    EasyVulkan是一个面向懒人的Vulkan中文教程系列，旨在帮助想要学习Vulkan的程序员轻松入门，避免踩坑。
    <br>
    这套教程使用有条理的面向对象编程，或者说，通过对Vulkan中的各种对象和过程进行封装，提高代码复用率，避免过于冗长的代码，以期降低学习难度。
    <br>
    学习这套教程前，你需要自备C++基础及高中程度的数学及英语知识。
</p>
<p>
    相关示例见<a href="https://github.com/EasyVulkan">我的Github</a>。
    <br>
    直接上的解决方案（VS2022，Win10）。
    <br>
    示例代码里没半点中文是因为中文编码在其他语言的OS中可能呈现乱码，以前用日文Win10时接收别人文件常遇到这个问题，每次要改又很烦，索性只写英语注释了。
</p>
<p>
    左侧搜索功能仅支持英文关键词。
</p>
<p>
    <strong>这不是技术美术教程，也不是计算机图形学教程（至少目前如此）。</strong>
</p></section>
<section id="vulkan">
<h2>为什么要学习Vulkan？<a class="headerlink" href="#vulkan" title="Permalink to this heading"></a></h2>
<p>
    Vulkan是一个较为底层的图形API，底层一词意味着它难学，但又能提供比诸如OpenGL、DirectX11等高级图形API更出众的性能（但也不可一概而论，在一些简单的场景中高级图形API可能会跑出更高的效率）。
    <br>
    Vulkan相比现有的其他偏底层的图形API（Windows专用的DirectX12、苹果系OS专用的Metal），其代码有着能跨平台编译的优势，但并不保证Vulkan程序总是能与用平台特定图形API写的程序性能相当（尽管这一差距可以非常小或没有差别）。
</p>
<p>
    <strong>用Vulkan能干什么？</strong>
    <br>
    搞渲染，比如开发渲染引擎、开发GUI等。
    <br>
    <strong>用Vulkan能做游戏吗？</strong>
    <br>
    能！只不过你要造一整套渲染引擎的轮子，啃一堆微积分和线性代数式子，做一系列其他纷繁复杂的编程。去他妈的UE、Unity！老子要自己造游戏引擎！人没有梦想和咸鱼有什么区别！
</p>
<p>
    总而言之，我觉得对于“为什么要学习Vulkan”这件事，你有你的理由，我有我的理由，自己做什么不做什么的理由，岂会是别人给的呢！
</p></section>
<section id="id3">
<h2>目录<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<p>
    阅读顺序：
    <br>
    第一章和第二章是Step By Step入门教程，很长，初学者请务必看完，已经学过的可以复习。
    <br>
    然后直接阅读第七章，按要求阅读三到六章。
</p><div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第一章 初始化</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch1-0%20%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C.html">Ch1-0 准备工作</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-1%20%E5%88%9B%E5%BB%BAGLFW%E7%AA%97%E5%8F%A3.html">Ch1-1 创建GLFW窗口</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-2%20%E5%88%9D%E5%A7%8B%E5%8C%96%E6%B5%81%E7%A8%8B.html">Ch1-2 初始化流程</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-3%20%E5%88%9B%E5%BB%BAVK%E5%AE%9E%E4%BE%8B%E4%B8%8E%E9%80%BB%E8%BE%91%E8%AE%BE%E5%A4%87.html">Ch1-3 创建VK实例与逻辑设备</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch1-4%20%E5%88%9B%E5%BB%BA%E4%BA%A4%E6%8D%A2%E9%93%BE.html">Ch1-4 创建交换链</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第二章 绘制一个三角形</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch2-0%20%E4%BB%A3%E7%A0%81%E6%95%B4%E7%90%86%E5%8F%8A%E4%B8%80%E4%BA%9B%E8%BE%85%E5%8A%A9%E7%B1%BB.html">Ch2-0 代码整理及一些辅助类</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-1%20Rendering%20Loop.html">Ch2-1 Rendering Loop</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-2%20%E5%88%9B%E5%BB%BA%E6%B8%B2%E6%9F%93%E9%80%9A%E9%81%93%E5%92%8C%E5%B8%A7%E7%BC%93%E5%86%B2.html">Ch2-2 创建渲染通道和帧缓冲</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch2-3%20%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%BA%BF%E5%B9%B6%E7%BB%98%E5%88%B6%E4%B8%89%E8%A7%92%E5%BD%A2.html">Ch2-3 创建管线并绘制三角形</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第三章 纵观Vulkan</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch3-1%20%E5%90%8C%E6%AD%A5%E5%8E%9F%E8%AF%AD.html">Ch3-1 同步原语</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-2%20%E5%9B%BE%E5%83%8F%E4%B8%8E%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch3-2 图像与缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-3%20%E7%AE%A1%E7%BA%BF%E5%B8%83%E5%B1%80%E5%92%8C%E7%AE%A1%E7%BA%BF.html">Ch3-3 管线布局和管线</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-4%20%E6%B8%B2%E6%9F%93%E9%80%9A%E9%81%93%E5%92%8C%E5%B8%A7%E7%BC%93%E5%86%B2.html">Ch3-4 渲染通道和帧缓冲</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-5%20%E5%91%BD%E4%BB%A4%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch3-5 命令缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-6%20%E6%8F%8F%E8%BF%B0%E7%AC%A6.html">Ch3-6 描述符</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch3-7%20%E9%87%87%E6%A0%B7%E5%99%A8.html">Ch3-7 采样器</a></li>
</ul>
</div>
<div class="line-block">
<div class="line">Ch3-8 Query</div>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第四章 着色器</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch4-1%20%E7%9D%80%E8%89%B2%E5%99%A8%E6%A8%A1%E7%BB%84.html">Ch4-1 着色器模组</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch4-2%20%E9%A1%B6%E7%82%B9%E7%9D%80%E8%89%B2%E5%99%A8.html">Ch4-2 顶点着色器</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch4-3%20%E7%89%87%E6%AE%B5%E7%9D%80%E8%89%B2%E5%99%A8.html">Ch4-3 片段着色器</a></li>
</ul>
</div>
<div class="line-block">
<div class="line">Ch4-4 几何着色器</div>
<div class="line">Ch4-5 细分着色器</div>
<div class="line">Ch4-6 计算着色器</div>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第五章 封装常用对象</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch5-0%20VkBase%2B.h.html">Ch5-0 VkBase+.h</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch5-1%20%E5%90%84%E7%A7%8D%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch5-1 各种缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch5-2%202D%E8%B4%B4%E5%9B%BE%E5%8F%8A%E7%94%9F%E6%88%90Mipmap.html">Ch5-2 2D贴图及生成Mipmap</a></li>
</ul>
</div>
<div class="line-block">
<div class="line">Ch5-3 2D贴图数组</div>
<div class="line">Ch5-4 立方体贴图</div>
<div class="line">Ch5-5 图像附件</div>
</div>
<div class="toctree-wrapper compound">
</div>
<div class="line-block">
<div class="line">Ch6-0 使用新版本特性</div>
<div class="line">Ch6-1 Imageless Framebuffer</div>
<div class="line">Ch6-2 动态渲染</div>
</div>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">第七章 基础示例</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="Ch7-1%20%E5%88%9D%E8%AF%86%E9%A1%B6%E7%82%B9%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-1 初识顶点缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-2%20%E5%88%9D%E8%AF%86%E7%B4%A2%E5%BC%95%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-2 初识索引缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-3%20%E5%88%9D%E8%AF%86Push%20Constant.html">Ch7-3 初识Push Constant</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-4%20%E5%88%9D%E8%AF%86Uniform%E7%BC%93%E5%86%B2%E5%8C%BA.html">Ch7-4 初识Uniform缓冲区</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-5%20%E6%8B%B7%E8%B4%9D%E5%9B%BE%E5%83%8F%E5%88%B0%E5%B1%8F%E5%B9%95.html">Ch7-5 拷贝图像到屏幕</a></li>
<li class="toctree-l1"><a class="reference internal" href="Ch7-6%20%E4%BD%BF%E7%94%A8%E8%B4%B4%E5%9B%BE.html">Ch7-6 使用贴图</a></li>
</ul>
</div>
<div class="toctree-wrapper compound">
</div>
<div class="line-block">
<div class="line">Ch8-1 预乘透明度</div>
<div class="line">Ch8-2 深度与模板测试</div>
<div class="line">Ch8-3 离屏渲染</div>
<div class="line">Ch8-4 多重采样与超采样</div>
<div class="line">Ch8-5 立方体贴图应用实例</div>
<div class="line">Ch8-6 延迟渲染</div>
<div class="line">Ch8-7 HDR与sRGB色彩空间</div>
<div class="line">Ch8-8 曲面细分与置换贴图</div>
</div>
<div class="toctree-wrapper compound">
</div>
<div class="line-block">
<div class="line">Ch9-1 为透明图像生成Mipmap</div>
<div class="line">Ch9-2 截取交换链图像</div>
<div class="line">Ch9-3 将ERP图像转为Cubemap</div>
</div>
</section>
<section id="id4">
<h2>更新履历<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<p>2024.02.19</p>
<ul>
    <li>
        <p>
            <a class="reference internal" href="Ch2-1%20Rendering%20Loop.html">Ch2-1 Rendering Loop</a>修改，变更了“等待栅栏”和“获取交换链图像”的顺序（更新Vulkan SDK后才检查出问题-_-||），顺带简要说明了同步和异步。
        </p>
    </li>
    <li>
        <p>
            <a class="reference internal" href="Ch7-6%20%E4%BD%BF%E7%94%A8%E8%B4%B4%E5%9B%BE.html">Ch7-6 使用贴图</a>写了一半（示例代码已上传）。
        </p>
    </li>
</ul>
<p>2024.02.13</p>
<ul>
    <li>
        <p>
            <a class="reference internal" href="Ch5-2%202D%E8%B4%B4%E5%9B%BE%E5%8F%8A%E7%94%9F%E6%88%90Mipmap.html">Ch5-2 2D贴图及生成Mipmap</a>完成。
        </p>
    </li>
</ul>
<p>2024.02.04</p>
<ul>
    <li>
        <p>
            根据先前所写的关于内存屏障的说明的基础上，修正<a class="reference internal" href="Ch7-5%20%E6%8B%B7%E8%B4%9D%E5%9B%BE%E5%83%8F%E5%88%B0%E5%B1%8F%E5%B9%95.html">Ch7-5 拷贝图像到屏幕 #CmdCopyBufferToImage</a>中关于内存屏障的部分说明（-_-||）。
        </p>
    </li>
</ul>
<p>2024.01.25</p>
<ul>
    <li>
        <p>
            进一步修正并细化说明<a class="reference internal" href="Ch3-1%20%E5%90%8C%E6%AD%A5%E5%8E%9F%E8%AF%AD.html#id10">内存屏障的作用</a>。
        </p>
    </li>
</ul>
<p>2024.01.13</p>
<ul>
    <li>
        <p>
            <a class="reference internal" href="Ch7-5%20%E6%8B%B7%E8%B4%9D%E5%9B%BE%E5%83%8F%E5%88%B0%E5%B1%8F%E5%B9%95.html">Ch7-5 拷贝图像到屏幕</a> 完成，同时修正了先前（在完成Ch7-5前便已上传的该节的示例）代码中的一些错误。
        </p>
    </li>
</ul>
<p>2024.01.09</p>
<ul>
    <li>
        <p>
            详细说明了内存依赖：<a class="reference internal" href="Ch3-1%20%E5%90%8C%E6%AD%A5%E5%8E%9F%E8%AF%AD.html#id10">内存屏障的作用</a>。
        </p>
    </li>
    <li>
        <p>
            改正了<span class="enum">VK_DEPENDENCY_VIEW_LOCAL_BIT</span>的简短说明
        </p>
    </li>
</ul>
<p>2024.01.07</p>
<ul>
    <li>
        <p>
            根据Vulkan标准更新后的章节划分，修正了到renderdoc的超链接。
        </p>
    </li>
    <li>
        <p>
            略微增加了一些说明。
        </p>
    </li>
    <li>
        <p>
            改正一些typo。
        </p>
    </li>
</ul>
<p>2023.10.13</p>
<ul>
    <li>
        <p>
            新增<a class="reference internal" href="Ch3-7%20%E9%87%87%E6%A0%B7%E5%99%A8.html">Ch3-7 采样器</a>。
        </p>
    </li>
</ul>
<p>2023.03.14</p>
<ul>
    <li>
        <p>
            修正几处笔误。
        </p>
    </li>
</ul>
<p>2023.01.11</p>
<ul>
    <li>
        <p>
            修改了一些函数名和类名。
        </p>
    </li>
    <li>
        <p>
            示例代码中，增加了一些<a href="https://github.com/EasyVulkan/EasyVulkan.github.io/blob/main/solution/EasyVulkan_Ch7/EasyVKStart.h#L53">数学函数</a>备用。
        </p>
    </li>
    <li>
        <p>
            删了个在参数中间省略默认参数<span class="var">renderArea</span>的函数<span class="type">renderPass</span>::<span class="fn">CmdBegin</span>(...)←这种不良习惯容易导致Bug！并相应修改代码。
        </p>
    </li>
    <li>
        <p>
            Ch1-4<a class="reference internal" href="Ch1-4%20%E5%88%9B%E5%BB%BA%E4%BA%A4%E6%8D%A2%E9%93%BE.html#id11">最后</a>应该要更新<span class="fn">TerminateWindow</span>()，<a class="reference internal" href="Ch1-4%20%E5%88%9B%E5%BB%BA%E4%BA%A4%E6%8D%A2%E9%93%BE.html#id9">若需要重建逻辑设备</a>末尾应该要向<span class="type">graphicsBase</span>::<span class="fn">CreateDevice</span>()增加一小段执行回调函数的代码，原本忘记了现在补上。在<a class="reference internal" href="Ch1-4%20%E5%88%9B%E5%BB%BA%E4%BA%A4%E6%8D%A2%E9%93%BE.html#id8">创建和销毁交换链时的回调函数</a>末尾添加了关于使用range-based for循环执行回调函数的注释。
        </p>
    </li>
</ul>
<p>2022.11.30</p>
<ul>
    <li>
        <p>
            新增关于线性图像中填充字节的说明，见<a class="reference internal" href="Ch5-1%20%E5%90%84%E7%A7%8D%E7%BC%93%E5%86%B2%E5%8C%BA.html#staging-buffer">stagingBuffer</a>的部分。
        </p>
    </li>
</ul>
<p>2022.11.24</p>
<ul>
    <li>
        <p>
            基础部分重写完毕。
        </p>
    </li>
</ul></section>
<section id="id5">
<h2>关于转载<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<p>
    可随意转载，记得带上原文链接并注明作者（<a href="https://space.bilibili.com/600719">TimeRemnant</a>）。
</P></section>
<section id="id6">
<h2>联系方式<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<p>
    联系方式：
<p>
<ul>
    <li>
        <p>
            直接发Issue：捉虫或答疑可至此，不定期上Github。
        </p>
    </li>
    <li>
        <p>
            B站私信：<a href="https://space.bilibili.com/600719">TimeRemnant的个人空间</a>，关于C++语法和Vulkan的答疑可联系，不定期上B站（其实基本不上，而且做编程教学视频大概也赚不了钱）。
        </p>
    </li>
    <li>
        <p>
            QQ/邮箱：3013696217@qq.com（不要试图拉我进群之类的）
        </p>
    </li>
</ul>
<p>
    欢迎以下形式的捉虫：
</p>
<ol>
    <li>
        <p>
            解释错误或代码逻辑错误
        </p>
    </li>
    <li>
        <p>
            前言不搭后语
        </p>
    </li>
    <li>
        <p>
            已完成页面上的内容缺失（突然冒出毫无解释的代码，那就是我漏写了）
        </p>
    </li>
    <li>
        <p>
            妨碍理解的错别字、多字漏字
        </p>
    </li>
    <li>
        <p>
            文本着色错误（如果你看懂了我的着色规则的话）
        </p>
    </li>
</ol>
<p>
    关于内容：
    <br>
    涉及到具体光照算法的内容暂时不开专题，等目前目录中存在的内容写完再议。目前着重于API本身。
</p></section>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="Ch1-0%20%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C.html" class="btn btn-neutral float-right" title="Ch1-0 准备工作" accesskey="n" rel="next">下一页 <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; 版权所有 2021, Qiao YeCheng.</p>
  </div>

  利用 <a href="https://www.sphinx-doc.org/">Sphinx</a> 构建，使用了 
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">主题</a>
    由 <a href="https://readthedocs.org">Read the Docs</a>开发.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>